home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 1999 July: Mac OS SDK / Dev.CD Jul 99 SDK1.toast / Development Kits / Mac OS / Interfaces&Libraries / Universal / Interfaces / PInterfaces / AIFF.p < prev    next >
Encoding:
Text File  |  1998-08-17  |  4.6 KB  |  228 lines  |  [TEXT/MPS ]

  1. {
  2.      File:        AIFF.p
  3.  
  4.      Contains:    Definition of AIFF file format components.
  5.  
  6.      Version:    Technology:    System 7.5
  7.                  Release:    Universal Interfaces 3.2
  8.  
  9.      Copyright:    © 1989-1995, 1997-1998 by Apple Computer, Inc., all rights reserved.
  10.  
  11.      Bugs?:        For bug reports, consult the following page on
  12.                  the World Wide Web:
  13.  
  14.                      http://developer.apple.com/bugreporter/
  15.  
  16. }
  17. {$IFC UNDEFINED UsingIncludes}
  18. {$SETC UsingIncludes := 0}
  19. {$ENDC}
  20.  
  21. {$IFC NOT UsingIncludes}
  22.  UNIT AIFF;
  23.  INTERFACE
  24. {$ENDC}
  25.  
  26. {$IFC UNDEFINED __AIFF__}
  27. {$SETC __AIFF__ := 1}
  28.  
  29. {$I+}
  30. {$SETC AIFFIncludes := UsingIncludes}
  31. {$SETC UsingIncludes := 1}
  32.  
  33. {$IFC UNDEFINED __MACTYPES__}
  34. {$I MacTypes.p}
  35. {$ENDC}
  36.  
  37.  
  38. {$PUSH}
  39. {$ALIGN MAC68K}
  40. {$LibExport+}
  41.  
  42.  
  43. CONST
  44.     AIFFID                        = 'AIFF';
  45.     AIFCID                        = 'AIFC';
  46.     FormatVersionID                = 'FVER';
  47.     CommonID                    = 'COMM';
  48.     FORMID                        = 'FORM';
  49.     SoundDataID                    = 'SSND';
  50.     MarkerID                    = 'MARK';
  51.     InstrumentID                = 'INST';
  52.     MIDIDataID                    = 'MIDI';
  53.     AudioRecordingID            = 'AESD';
  54.     ApplicationSpecificID        = 'APPL';
  55.     CommentID                    = 'COMT';
  56.     NameID                        = 'NAME';
  57.     AuthorID                    = 'AUTH';
  58.     CopyrightID                    = '(c) ';
  59.     AnnotationID                = 'ANNO';
  60.  
  61.     NoLooping                    = 0;
  62.     ForwardLooping                = 1;
  63.     ForwardBackwardLooping        = 2;                            {  AIFF-C Versions  }
  64.     AIFCVersion1                = $A2805140;
  65.  
  66.  
  67. { Compression Names }
  68.     NoneName     = 'not compressed';
  69.     ACE2to1Name  = 'ACE 2-to-1';
  70.     ACE8to3Name  = 'ACE 8-to-3';
  71.     MACE3to1Name = 'MACE 3-to-1';
  72.     MACE6to1Name = 'MACE 6-to-1';
  73.  
  74.  
  75.                                                                 {  Compression Types  }
  76.     NoneType                    = 'NONE';
  77.     ACE2Type                    = 'ACE2';
  78.     ACE8Type                    = 'ACE8';
  79.     MACE3Type                    = 'MAC3';
  80.     MACE6Type                    = 'MAC6';
  81.  
  82.  
  83. TYPE
  84.     ID                                    = UInt32;
  85.     MarkerIdType                        = INTEGER;
  86.     ChunkHeaderPtr = ^ChunkHeader;
  87.     ChunkHeader = RECORD
  88.         ckID:                    ID;
  89.         ckSize:                    LONGINT;
  90.     END;
  91.  
  92.     ContainerChunkPtr = ^ContainerChunk;
  93.     ContainerChunk = RECORD
  94.         ckID:                    ID;
  95.         ckSize:                    LONGINT;
  96.         formType:                ID;
  97.     END;
  98.  
  99.     FormatVersionChunkPtr = ^FormatVersionChunk;
  100.     FormatVersionChunk = RECORD
  101.         ckID:                    ID;
  102.         ckSize:                    LONGINT;
  103.         timestamp:                UInt32;
  104.     END;
  105.  
  106.     CommonChunkPtr = ^CommonChunk;
  107.     CommonChunk = RECORD
  108.         ckID:                    ID;
  109.         ckSize:                    LONGINT;
  110.         numChannels:            INTEGER;
  111.         numSampleFrames:        UInt32;
  112.         sampleSize:                INTEGER;
  113.         sampleRate:                extended80;
  114.     END;
  115.  
  116.     ExtCommonChunkPtr = ^ExtCommonChunk;
  117.     ExtCommonChunk = RECORD
  118.         ckID:                    ID;
  119.         ckSize:                    LONGINT;
  120.         numChannels:            INTEGER;
  121.         numSampleFrames:        UInt32;
  122.         sampleSize:                INTEGER;
  123.         sampleRate:                extended80;
  124.         compressionType:        ID;
  125.         compressionName:        SInt8;                                    {  variable length array, Pascal string  }
  126.     END;
  127.  
  128.     SoundDataChunkPtr = ^SoundDataChunk;
  129.     SoundDataChunk = RECORD
  130.         ckID:                    ID;
  131.         ckSize:                    LONGINT;
  132.         offset:                    UInt32;
  133.         blockSize:                UInt32;
  134.     END;
  135.  
  136.     MarkerPtr = ^Marker;
  137.     Marker = RECORD
  138.         id:                        MarkerIdType;
  139.         position:                UInt32;
  140.         markerName:                Str255;
  141.     END;
  142.  
  143.     MarkerChunkPtr = ^MarkerChunk;
  144.     MarkerChunk = RECORD
  145.         ckID:                    ID;
  146.         ckSize:                    LONGINT;
  147.         numMarkers:                UInt16;
  148.         Markers:                ARRAY [0..0] OF Marker;                    {  variable length array  }
  149.     END;
  150.  
  151.     AIFFLoopPtr = ^AIFFLoop;
  152.     AIFFLoop = RECORD
  153.         playMode:                INTEGER;
  154.         beginLoop:                MarkerIdType;
  155.         endLoop:                MarkerIdType;
  156.     END;
  157.  
  158.     InstrumentChunkPtr = ^InstrumentChunk;
  159.     InstrumentChunk = PACKED RECORD
  160.         ckID:                    ID;
  161.         ckSize:                    LONGINT;
  162.         baseFrequency:            UInt8;
  163.         detune:                    UInt8;
  164.         lowFrequency:            UInt8;
  165.         highFrequency:            UInt8;
  166.         lowVelocity:            UInt8;
  167.         highVelocity:            UInt8;
  168.         gain:                    INTEGER;
  169.         sustainLoop:            AIFFLoop;
  170.         releaseLoop:            AIFFLoop;
  171.     END;
  172.  
  173.     MIDIDataChunkPtr = ^MIDIDataChunk;
  174.     MIDIDataChunk = RECORD
  175.         ckID:                    ID;
  176.         ckSize:                    LONGINT;
  177.         MIDIdata:                SInt8;                                    {  variable length array  }
  178.     END;
  179.  
  180.     AudioRecordingChunkPtr = ^AudioRecordingChunk;
  181.     AudioRecordingChunk = RECORD
  182.         ckID:                    ID;
  183.         ckSize:                    LONGINT;
  184.         AESChannelStatus:        PACKED ARRAY [0..23] OF UInt8;
  185.     END;
  186.  
  187.     ApplicationSpecificChunkPtr = ^ApplicationSpecificChunk;
  188.     ApplicationSpecificChunk = RECORD
  189.         ckID:                    ID;
  190.         ckSize:                    LONGINT;
  191.         applicationSignature:    OSType;
  192.         data:                    SInt8;                                    {  variable length array  }
  193.     END;
  194.  
  195.     CommentPtr = ^Comment;
  196.     Comment = RECORD
  197.         timeStamp:                UInt32;
  198.         marker:                    MarkerIdType;
  199.         count:                    UInt16;
  200.         text:                    SInt8;                                    {  variable length array, Pascal string  }
  201.     END;
  202.  
  203.     CommentsChunkPtr = ^CommentsChunk;
  204.     CommentsChunk = RECORD
  205.         ckID:                    ID;
  206.         ckSize:                    LONGINT;
  207.         numComments:            UInt16;
  208.         comments:                ARRAY [0..0] OF Comment;                {  variable length array  }
  209.     END;
  210.  
  211.     TextChunkPtr = ^TextChunk;
  212.     TextChunk = RECORD
  213.         ckID:                    ID;
  214.         ckSize:                    LONGINT;
  215.         text:                    SInt8;                                    {  variable length array, Pascal string  }
  216.     END;
  217.  
  218. {$ALIGN RESET}
  219. {$POP}
  220.  
  221. {$SETC UsingIncludes := AIFFIncludes}
  222.  
  223. {$ENDC} {__AIFF__}
  224.  
  225. {$IFC NOT UsingIncludes}
  226.  END.
  227. {$ENDC}
  228.